Q: Does the PCI Device Manager handle calls to drivers and the KillIO command the
same way as the current Device Manager (all calls to drivers are treated as
asynchronous calls)? If so, does this mean that the driver has control?
A: The PCI Device Manager handles KillIO the same way that the current Device
Manager does. This means that you are issued one killIO (since they are
delivered immediately), with the PB pointing to the block that needs to be
killed. The Device Manager then walks the queue and removes and terminates all
pending entries (it calls IOCommandCompleted with abort status).
This is only an issue if you maintain an internal queue (take entries off the
device queue yourself). If you do this, you can either put the entries back or
call IOCommandCompleted yourself.
|